

#ifndef CAMERA_H
#define CAMERA_H

#include <GL\glfw.h>
#include <glm\glm.hpp>

class Camera
{

public:
	//Default constructor
	Camera(){};
	//Constructor
	Camera(glm::vec3 pos, float hAngle, float vAngle, float s, float mSpeed);

	//destructor
	~Camera(){};

	void init(glm::vec3 pos, float hAngle, float vAngle, float s, float mSpeed);

	void update();

	glm::vec3 getPos(){return position;};
	glm::vec3 getDir(){return direction;};
	glm::vec3 getUpVec(){return up;};

private:
	glm::vec3 position, direction, up;
	float horizontalAngle, verticalAngle;
	float speed, mouseSpeed;
	int xCursorPos, yCursorPos;
	int xOldCursorPos, yOldCursorPos;
	int windowWidth, windowHeight;
	float deltaTime;

	bool rightButtonPressed;

};

#endif